package org.meb.lotrlcg.scan.model;

import lombok.Getter;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@RequiredArgsConstructor
@ToString
public class Card {

	public enum Type {
		ALLY, ATTACHMENT, ENEMY, EVENT, HERO, LOCATION, OBJECTIVE, QUEST, TREACHERY
	}

	private Integer attack;
	private String cost;
	private Integer defense;
	private String encounterInfo;
	private String encounterSet;
	private Integer engageThreat;
	private Integer hitPoints;
	private String illustrator;
	private String name;
	private Integer number;
	private Integer quantity;
	private Integer questPoints;
	private String set;
	private String shadowEffect;
	private String sphere;
	private Integer startingThreat;
	private Integer threat;
	private String trait;
	@NonNull
	private Type type;
	private Integer willpower;

	// @Override
	// public String toString() {
	// StringBuilder builder = new StringBuilder();
	//
	// Field[] fields = this.getClass().getDeclaredFields();
	// for (Field field : fields) {
	// try {
	// Object value = PropertyUtils.getProperty(this, field.getName());
	// if (value != null) {
	// }
	// } catch (Exception e) {
	// throw new RuntimeException(e);
	// }
	// }
	// return builder.toString();
	// }
}
